package edu.java基础;

public class O_方法2 {
   /* public static void main(String[] args) {
        //方法参数传递为基本数据类型：传入方法中的是具体的数值
        int number = 100;
        System.out.println("调用change方法前：" + number); //100
        change(number); //只是将100传递给了形参number
        System.out.println("调用change方法后：" + number); //100,形参number变了不影响实参
    }*/

    //方法参数传递
    public static void change(int number) { //传递过来100，number=100
        number = 200;  //只是将形参number由100变成了200
    }

    //方法参数传递（引用类型）
   /* public static void main(String[] args) {
        int[] arr={10,20,30};
        System.out.println("调用change前："+arr[1]);  //20
        change(arr);
        System.out.println("调用change后："+arr[1]); //200
    }*/

    //如果一个方法传递的参数是引用类型，那传入方法中的就是该引用数据类型的内存地址
    public static void change(int[] arr) { //传过来的arr与实参arr在堆内存中是同一个地址值
        arr[1] = 200;   //操作了实参arr
    }


    //数组遍历
    /*设计一个方法用于数组遍历，要求遍历的结果是在一行上的  例如：[11,22,33,44,55]*/
    /*public static void main(String[] args) {
        int[] arr = {11,22,33,44,55};
        printArray(arr);
    }*/
    //遍历方法
    public static void printArray(int[] arr) {
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            //最后一个元素不要“ , ”  而且让以后正常换行
            if (i == arr.length - 1) {
                System.out.println(arr[i] + "]");
            } else {
                //不换行
                System.out.print(arr[i] + ", ");
            }
        }

    }

    //设计一个方法用于获取数组中元素的最大值
   /* public static void main(String[] args) {
        int[] arr = {11,22,33,44,55};
        int max = getMax(arr);
        System.out.println(max);

    }*/

    public static int getMax(int[] arr) {
        int max = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (max < arr[i]) {
                max = arr[i];
            }
        }
        return max;
    }
    /*一个方法如何返回多个值：数组*/
    //设计一个方法，该方法能够同时获取数组的最大值，最小值
    //return 只能返回一个结果
    public static void main(String[] args) {
        int[] arr = {11, 22, 33, 44, 55};
        int[] maxAndMin = getMaxAndMin(arr);
        System.out.println("最小值："+maxAndMin[0]);
        System.out.println("最大值："+maxAndMin[1]);
    }

    public static int[] getMaxAndMin(int[] arr) {
        int max = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (max < arr[i]) {
                max = arr[i];
            }
        }

        int min = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (min > arr[i]) {
                min = arr[i];
            }
        }
        int[] maxAndMin = {max,min};
        return maxAndMin;  //返回值是数组类型，方法定义那里要改成数组
    }
}
